package com.activiti.basic.model;

/**
 * HTTP状态码
 * @author pisory
 * @version 1.0
 * @date 2020/4/5
 */
public class ResponseCodeConstant {
    /** 200（成功） 服务器已成功处理了请求*/
    public static final String RESPONSE_CODE_200 = "200";

    /** 201 服务响应码--失败 */
    public static final String RESPONSE_CODE_201 = "201";

    /** 202（已接受,但未处理） 服务器已接受请求，但尚未处理  */
    public static final String RESPONSE_CODE_202 = "202";

    /** 204（无内容） 服务器成功处理了请求，但没有返回任何内容。  */
    public static final String RESPONSE_CODE_204 = "204";

    /** 206（部分内容） 服务器成功处理了部分 GET 请求。 类似于 FlashGet
     * 或者迅雷这类的 HTTP 下载工具都是使用此类响应实现断点续传或者将一个大文档分解为多个下载段同时下载。 */
    public static final String RESPONSE_CODE_206 = "206";

    /** （语法错误请求） 服务器不理解请求的语法。 1、语义有误，当前请求无法被服务器理解。除非进行修改，否则客户端不应该重复提交这个请求。2、请求参数有误。 */
    public static final String RESPONSE_CODE_400 = "400";

    /** 401（未授权） 请求要求身份验证。 对于需要登录的网页，服务器可能返回此响应。 */
    public static final String RESPONSE_CODE_401 = "401";

    /** 403（得到授权但禁止） 服务器拒绝请求。服务器理解客户的请求，但拒绝处理它。通常由于服务器上文件或目录的权限设置导致。  */
    public static final String RESPONSE_CODE_403 = "403";

    /** 404（不存在的记录,未找到） 服务器找不到请求的记录。 例如，对于服务器上不存在的网页经常会返回此代码。  */
    public static final String RESPONSE_CODE_404 = "404";

    /** 408（请求超时） 在服务器许可的等待时间内，客户一直没有发出任何请求。客户可以在以后重复同一请求。 */
    public static final String RESPONSE_CODE_408 = "408";

    /** 410（被删除） 用户请求的资源被永久删除，且不会再得到的。  */
    public static final String RESPONSE_CODE_410 = "410";

    /** 411（需要有效长度） 服务器不能处理请求，除非客户发送一个Content-Length头。  */
    public static final String RESPONSE_CODE_411 = "411";

    /** 414（请求的 URI 过长） 请求的 URI（通常为网址）过长，服务器无法处理。  */
    public static final String RESPONSE_CODE_414 = "414";

    /** 415（不支持的媒体类型） 请求的格式不受请求页面的支持。  */
    public static final String RESPONSE_CODE_415 = "415";

    /** 416（请求范围不符合要求） 如果页面无法提供请求的范围，则服务器会返回此状态代码。   */
    public static final String RESPONSE_CODE_416 = "416";

    /** 500 内部应用程序错误,不能完成用户的请求   */
    public static final String RESPONSE_CODE_500 = "500";

    public static final String SUCCESS_MESSAGE = "操作成功";
    public static final String EXCEPTION_MESSAGE = "系统维护，请稍后再试";

    public static String[] values() {
        return new String[] { RESPONSE_CODE_200, RESPONSE_CODE_201, RESPONSE_CODE_202,
                RESPONSE_CODE_204, RESPONSE_CODE_206, RESPONSE_CODE_400,
                RESPONSE_CODE_401, RESPONSE_CODE_403, RESPONSE_CODE_404,
                RESPONSE_CODE_408, RESPONSE_CODE_410, RESPONSE_CODE_411,
                RESPONSE_CODE_414, RESPONSE_CODE_415, RESPONSE_CODE_416, RESPONSE_CODE_500 };
    }

    public static String valueOf(String value) {
        String result = null;

        String[] values = values();
        for (String val : values) {
            if (val.equals(value)) {
                result = val;
                break;
            }
        }

        return result;
    }
}
